Skip to content

Highlighter/jk replay integration#5847

Draft
jankalthoefer wants to merge 21 commits intomasterfrom
highlighter/jk-replay-integration
Draft

Highlighter/jk replay integration#5847
jankalthoefer wants to merge 21 commits intomasterfrom
highlighter/jk-replay-integration

Conversation

@jankalthoefer
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces “Replay/Highlighter migration” plumbing by adding a Streamlabs Replay install/open/import flow (with UI notices) and wiring it behind a new incremental rollout flag.

Changes:

  • Add a new highlighterMigration rollout flag and UI surfaces (migration notice + installation flow) in Highlighter/Import/Go-Live experiences.
  • Implement Windows-only detection (registry protocol + running process) and an installer download/execute flow for Streamlabs Replay.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description

| app/services/incremental-rollout.ts | Adds highlighterMigration feature flag. |
| app/services/highlighter/models/highlighter.models.ts | Extends highlighter state with replay install status/progress model. |
| app/services/highlighter/index.ts | Implements Replay install/open/import/stop-recording flows and related analytics/state. |
| app/services/highlighter/constants.ts | Adds setup URLs and Replay protocol/app naming constants. |
| app/components-react/windows/go-live/AiHighlighterToggle.tsx | Adds warning UI when external recorder is running; updates service calls/imports. |
| app/components-react/windows/go-live/AiHighlighterToggle.m.less | Layout/style adjustments for Go-Live highlighter card. |
| app/components-react/pages/Highlighter.tsx | Removes unused incremental-rollout import. |
| app/components-react/highlighter/StreamView.tsx | Shows MigrationNotice in stream view when flag enabled. |
| app/components-react/highlighter/MigrationNotice.tsx | New migration notice component that can trigger open/install flow. |
| app/components-react/highlighter/MigrationNotice.m.less | Styles for migration notice + installation flow UI. |
| app/components-react/highlighter/InstallationFlow.tsx | New install progress/error/success UI tied to replay install state. |
| app/components-react/highlighter/ImportStream.tsx | Switches import flow to Replay deeplink + adds install gating/UI. |
| app/components-react/highlighter/HypeWrapper.tsx | Extracts shared “hype” wrapper and platform logos from ImportStream. |
| app/components-react/highlighter/HypeWrapper.m.less | Styles for the extracted hype wrapper. |
| app/components-react/highlighter/ClipsView.tsx | Minor modal handler type adjustment / whitespace. |


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/services/highlighter/index.ts Outdated
Comment thread app/services/highlighter/index.ts
Comment thread app/services/highlighter/index.ts Outdated
Comment thread app/components-react/highlighter/MigrationNotice.tsx Outdated
Comment thread app/util/requests.ts
@jankalthoefer
Copy link
Copy Markdown
Contributor Author

@copilot review with the latest changes.

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown

Copilot AI commented Apr 21, 2026

@copilot review with the latest changes.

Here's the status of all previously flagged issues after reviewing the latest changes:

isMigrationEnabled hardcoded true || – Fixed (commit 840ac42): feature flag properly controls exposure.

cancelReplayInstall() analytics phase – Fixed (commit 707b95f): step is captured from this.state.replayInstall.step before the state reset, so the correct in-progress step is reported.

JSDoc for openReplay – Fixed (commit a20e607): comment now matches the actual source parameter.

Integrity verification before running installer – Now fixed (commit 110c0d8): added verifyAuthenticodeSignature() which uses PowerShell's Get-AuthenticodeSignature to verify both that the signature is valid and that the CN field in the signer certificate contains Streamlabs before the installer is executed. The PowerShell script is passed via -EncodedCommand (UTF-16LE base64) to avoid any path injection risks.

↩️ downloadFile AbortSignal hanging – Intentionally reverted by you (commits 83c1a72 / 9252270). The current approach checks signal.aborted after the download completes rather than interrupting mid-stream. The download cannot be cancelled mid-flight with this design, but the installer is never executed if the signal was aborted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants